Measures of Correctness in Distributed Systems

Let's see how to measure the correctness of a distributed system.

Correctness#

We can define the correctness of a system in terms of the properties it must satisfy.

Measures of Correctness#

The correctness measures for distributed systems are the two properties they must satisfy. These are the following:

  • Safety property
  • Liveness property

Safety#

A safety property defines something that must never happen in a correct system.

The oven temperature is exceeding the specified limit, this shouldn't happen

Liveness#

A liveness property defines something that must eventually happen in a correct system.

Oven temperature eventually reaching the specified limit, it must happen

Example of a correct system#

If we consider the correct properties of an oven, we can say that “the oven not exceeding a maximum temperature threshold” is a safety property. The property of “the oven eventually reaching the temperature we specified via the button” is a liveness property.

Similar to this example, it’s usually more important in distributed systems to ensure the system satisfies the safety property than the liveness one.

The safety property weighs more than liveness in distributed systems.

Throughout this course, it will become clear that there is an inherent tension between safety and liveness properties. Actually, as we will see later in this course, there are some problems that make it physically impossible to satisfy both kinds of properties. So, we need to compromise some liveness properties to maintain safety.

Difficulties Designing Distributed Systems
System Models
Mark as Completed
Report an Issue